#include "AstNode.h"
#include "stdio.h"
#include <string>
#include "Visitor.h"

void ProgramAstNode::Accept(AstVisitor *visitor) {
    visitor->VisitProgramNode(this);
}

void FunctionNode::Accept(AstVisitor *visitor) {
    visitor->VisitFunctionNode(this);
}

void FuncCallNode::Accept(AstVisitor *visitor) {
    visitor->VisitFuncCallNode(this);
}

void ExprStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitExprStatmNode(this);
}

void DeclarationStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitDeclarationStatmNode(this);
}

void IfStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitIfStatmNode(this);
}

void WhileStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitWhileStatmNode(this);
}

void ForStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitForStatmNode(this);
}

void ReturnStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitReturnStatmNode(this);
}

void BlockStatmNode::Accept(AstVisitor *visitor) {
    visitor->VisitBlockStatmNode(this);
}

void AssignExprNode::Accept(AstVisitor *visitor) {
    visitor->VisitAssignExprNode(this);
}

void BinaryAstNode::Accept(AstVisitor *visitor) {
    visitor->VisitBinaryNode(this);
}

void UnaryAstNode::Accept(AstVisitor *visitor) {
    visitor->VisitUnaryNode(this);
}

void ConstantAstNode::Accept(AstVisitor *visitor) {
    visitor->VisitConstantNode(this);
}

void SizeofNode::Accept(AstVisitor *visitor) {
    visitor->VisitSizeofNode(this);
}

void VarAstNode::Accept(AstVisitor *visitor) {
    visitor->VisitVarNode(this);
}


